#include <mqueue.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char const *argv[])
{
    // 1 设定队列的参数： 1 队列长度 2 消息最大大小
    struct mq_attr attr;
    attr.mq_maxmsg = 10;
    attr.mq_msgsize = 256;

    // 2 创建队列 mq_open
    mqd_t mq = mq_open("/test_wu", O_CREAT | O_RDWR, 0644, &attr);
    if (mq == -1)
    {
        perror("mq_open error");
        return -1;
    }
    
    // 3 向队列写入消息 mq_send
    char buf[12] = "hello world";
    mq_send(mq, buf, strlen(buf) + 1, 0);

    // 4 从队列读取消息 mq_receive
    char buf2[256];
    mq_receive(mq, buf2, sizeof(buf2), NULL);
    printf("buf2 = %s\n",buf2);

    // 5 删除队列 mq_close mq_unlink
    mq_close(mq);
    mq_unlink("/test_wu");
    return 0;
}
